#include "widget_assist_weather_painter.h"

Widget_assist_weather_painter::Widget_assist_weather_painter(QWidget *parent) : QLabel(parent)
{
    // 初始化
    point = new QPoint[7];
}

// 绘图类
void Widget_assist_weather_painter::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    // 创建 QPainter 对象，指定绘图设备为当前窗口
    QPainter painter(this);

// 画点设置
    // 设置画笔颜色为黑色，并且线宽为10
    //QPen pen(Qt::black);
    QPen pen(QColor("#FF4500")); // 使用明亮的橙红色
    pen.setWidth(10);
    // 设置线的末端为圆形
    pen.setCapStyle(Qt::RoundCap);

    // 设置笔
    painter.setPen(pen);

    // 获取每个点之间的间距
    int val = this->width() / 8;


    //-------------------------------- 高温曲线 -------------------------------------------
    // 获取数据的总和 用于计算中间点
    int sum = 0;

    // 高温中点
    for (int i = 0; i < 7 ; i ++) {
        sum += data_val_high[i];
    }
    // 平均值  中间点
    data_mean = sum / 7 - 6 ;  // 整体上移

    // 绘制点 画字
    for (int i = 1 ;i < 8;i++) {

        // 检测屏幕宽度

        // 计算点
        point[i - 1].setX(val *  i);
        point[i - 1].setY((this->height() / 2) + ((data_mean - data_val_high[i - 1]) * 3));

        // 绘制点
        painter.drawPoint( point[i - 1] );


        // 画字
        painter.drawText(point[i - 1].x() - 3 , point[i - 1].y() - 6 , QString::number(data_val_high[i - 1]));
    }

    // 设置画笔颜色 高温颜色
    //pen.setColor(QColor("#FF4500"));// 使用明亮的橙红色
    // 设置画笔
    pen.setWidth(2);
    // 设置笔
    painter.setPen(pen);

    // 绘制线
    for (int i = 0 ;i < 6;i++) {
        // 绘制线
        painter.drawLine( point[i] , point[i+1] );
    }

    // ---------------------------------- 低温曲线 -------------------------------------

  // 画点设置
    // 设置画笔颜色为黑色，并且线宽为10
    pen.setWidth(10);
    // 设置线的末端为圆形
    pen.setCapStyle(Qt::RoundCap);
    // 设置画笔颜色 低温颜色
    pen.setColor(QColor("#87CEEB"));// 使用柔和的天蓝色
    // 设置笔
    painter.setPen(pen);

    sum = 0;

    // 高温中点
    for (int i = 0; i < 7 ; i ++) {
        sum += data_val_low[i];
    }
    // 平均值  中间点
    data_mean = sum / 7 + 8 ; // 整体下移8

    // 绘制点 画字
    for (int i = 1 ;i < 8;i++) {

        // 检测屏幕宽度

        // 计算点
        point[i - 1].setX(val *  i);
        point[i - 1].setY((this->height() / 2) + ((data_mean - data_val_low[i - 1]) * 3));

        // 绘制点
        painter.drawPoint( point[i - 1] );

        // 画字
        painter.drawText(point[i - 1].x() - 3 , point[i - 1].y() + 18 , QString::number(data_val_low[i - 1]));
    }

    // 画线设置
    // 设置画笔
    pen.setWidth(2);
    // 设置画笔颜色 低温颜色
    pen.setColor(QColor("#87CEEB"));// 使用柔和的天蓝色

    painter.setPen(pen);
    // 绘制线
    for (int i = 0 ;i < 6;i++) {
        // 绘制线
        painter.drawLine( point[i] , point[i+1] );
    }



}
